//
// Created by xsh on 2025/6/4.
//
#pragma once
#include <cmath>

/**
 * 将 MIDI 音符编号转换为对应的频率（Hz）
 *
 * @param midiNote MIDI 音符编号（范围：0 ~ 127）
 * @return 对应的频率值（Hz）
 */
inline double midiNoteToFrequency(int midiNote)
{
    if (midiNote < 0 || midiNote > 127) {
        // 可选：抛出异常或返回 NaN
        return NAN; // 需要包含 <cmath>
    }
    return 440.0 * pow(2.0, (midiNote - 69.0) / 12.0);
}